// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Bwin casino app bonus guide: alles over bonussen en mobiel spelen – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Casino Bwin is al jarenlang een vaste waarde in de wereld van online gokken en weddenschappen. Voor spelers uit Nederland biedt dit platform een unieke combinatie van een uitgebreid sportsbook en een gevarieerd spelaanbod in het casino. Wanneer je overweegt om je aan te melden, is het essentieel om te begrijpen hoe het bonussysteem in elkaar steekt, welke regels er aan verbonden zijn en hoe je het maximale uit je speelervaring kunt halen. In deze handleiding duiken we diep in de werking van het platform en kijken we naar alle aspecten die voor jou als speler van belang zijn.

Het bonussysteem van Casino Bwin

Het bonussysteem bij Casino Bwin is ontworpen om zowel nieuwe spelers welkom te heten als loyale gokkers te belonen. Een welkomstbonus is vaak de eerste stap waar spelers naar kijken wanneer ze een platform vergelijken. Deze extra tegoeden of gratis spins bieden een uitstekende kans om het spelaanbod te verkennen zonder direct je volledige eigen budget in te zetten. Het is echter belangrijk om te onthouden dat deze bonussen nooit zomaar gratis geld zijn, aangezien ze altijd gepaard gaan met specifieke voorwaarden die bepaald worden door de verstrekker.

Naast de initiële welkomstpakketten vind je bij Casino Bwin regelmatig lopende promoties voor zowel sportwedden als casinospellen. Dit kunnen periodieke stortingsbonussen zijn, cashback-acties of speciale toernooien waar extra prijzen gewonnen kunnen worden. De sleutel tot een succesvolle ervaring met bonussen is om altijd alert te zijn op de kleine lettertjes. Soms is een bonus alleen geldig op geselecteerde gokkasten, terwijl bij andere campagnes de inzet op live casino spellen minder zwaar meetelt voor het vrijspelen van het bonusgeld. Het loont daarom altijd om de promotiepagina met enige regelmaat te raadplegen.

Wagering requirements en voorwaarden

Wagering requirements, ook wel inzetvereisten genoemd, vormen de kern van elk bonussysteem. Deze voorwaarden bepalen hoe vaak je het bonusbedrag (of soms het gecombineerde bedrag van storting en bonus) moet rondspelen voordat het kan worden omgezet in opneembaar saldo. Wanneer je bijvoorbeeld een bonus van honderd euro ontvangt met een inzetvereiste van dertig keer, betekent dit dat er voor drie duizend euro aan weddenschappen geplaatst moet worden op de platformen van Casino Bwin voordat de winst kan worden uitbetaald.

Naast het aantal rondes zijn er nog andere factoren die bepalen hoe snel je aan de voorwaarden voldoet. Niet elk spel draagt namelijk voor honderd procent bij aan de doorspeelvereisten. Vaak is de verdeling als volgt vastgelegd in de algemene voorwaarden:

  • Gokkasten: meestal tellen inzetten hier voor honderd procent mee.
  • Tafelspellen en live casino: vaak dragen deze slechts voor een klein percentage (bijvoorbeeld tien of twintig procent) bij aan de vereisten.
  • Sportweddenschappen: hier gelden vaak specifieke minimum quoteringen die behaald moeten worden om de inzet te laten meetellen.

De mobiele ervaring en de software

In een tijd waarin we alles via onze smartphone regelen, is het van cruciaal belang dat het platform uitstekend presteert op mobiele apparaten. Casino Bwin heeft hier fors in geïnvesteerd om ervoor te zorgen dat zowel de sportsbook-interface als de casinospellen vloeiend werken op verschillende schermformaten. Voor de meest optimale gebruikservaring kunnen enthousiaste spelers gebruikmaken van de bwin casino app die direct toegang biedt tot alle favoriete slots en live tafels. De navigatie is intuïtief en de laadtijden zijn minimaal, wat essentieel is voor een ononderbroken speelsessie.

Wanneer je kiest voor het spelen via de app of de mobiele website, behoud je toegang tot alle functies die ook op de desktopversie aanwezig zijn. Dit betekent dat je vanuit de trein of vanaf de bank moeiteloos stortingen kunt verrichten, promoties kunt activeren en contact kunt opnemen met de klantenservice. De software achter het platform is robuust en stabiel, waardoor je ook tijdens drukke sportevenementen of live casinorondes geen last zult hebben van haperingen of verbindingsproblemen die je spelplezier zouden kunnen bederven.

Betaalmethoden en uitbetalingssnelheid

Een soepele financiële afhandeling is voor iedere speler een belangrijk punt van aandacht. Casino Bwin ondersteunt een breed scala aan betaalmethoden die populair zijn in Nederland, waaronder directe bankoverschrijvingen, populaire e-wallets en kaartbetalingen. Het verwerken van een storting gebeurt vrijwel direct, waardoor je direct na de transactie aan de slag kunt gaan met je favoriete spellen. Bij het kiezen van een betaalmethode is het verstandig om ook naar de uitbetalingssnelheid te kijken, aangezien deze per methode kan variëren.

De onderstaande tabel geeft een overzicht van de gemiddelde kenmerken van verschillende betaalvormen die door Casino Bwin worden ondersteund:

Betaalmethode Verwerkingstijd Storting Verwerkingstijd Uitbetaling
iDeal Direct 1 tot 3 werkdagen
Creditcards Direct 2 tot 4 werkdagen
E-wallets Direct Binnen 24 uur
Bankoverschrijving 1 tot 2 werkdagen 3 tot 5 werkdagen

Registratie en verificatieproces

Om te mogen spelen bij Casino Bwin, is het verplicht om een account aan te maken en dit proces officieel te doorlopen. Dit begint met het invullen van persoonlijke gegevens, die vervolgens door het platform worden geverifieerd. Dit proces, beter bekend als KYC (Know Your Customer), is een wettelijke verplichting voor elk gelicentieerd casino. Het doel hiervan is simpel: voorkomen dat minderjarigen toegang krijgen tot het platform en witwassen tegengaan.

  1. Vul het registratieformulier volledig in met correcte persoonlijke informatie.
  2. Bevestig je e-mailadres en telefoonnummer via de toegestuurde verificatiecodes.
  3. Upload een kopie van een geldig identiteitsbewijs zoals een paspoort of rijbewijs.
  4. Verifieer je adres met een recent bankafschrift of energierekening indien gevraagd.
  5. Wacht tot het verificatieteam jouw gegevens heeft goedgekeurd; dit kan meestal binnen enkele uren of een dag gebeuren.

Het voltooien van dit proces is eenmalig, maar het is essentieel om dit zorgvuldig te doen. Als de gegevens op je account niet exact overeenkomen met die in je identiteitsbewijs, kan dit leiden tot onnodige vertragingen bij het aanvragen van je eerste uitbetaling. Zorg er daarom voor dat je bij de registratie altijd je juiste gegevens verstrekt, want veiligheid staat bij een betrouwbaar casino altijd voorop.

Veiligheid en verantwoord spelen

Veiligheid is het fundament van elke goede gokervaring. Wanneer je kiest voor een platform als Casino Bwin, kies je voor een partij die onder toezicht staat en gebruikmaakt van moderne encryptietechnieken om jouw persoonlijke en financiële gegevens te beschermen. De website draait op beveiligde verbindingen waardoor derden geen toegang hebben tot de data die wordt uitgewisseld tussen jouw apparaat en de servers van het casino. Dit geeft een veilig gevoel tijdens het spelen en storten.

Naast technische beveiliging staat ook verantwoord spelen hoog in het vaandel. Gokken moet immers leuk blijven als vorm van entertainment. Het platform biedt verschillende hulpmiddelen om je speelgedrag binnen de perken te houden, zoals het instellen van stortingslimieten, inzetlimieten of zelfs een tijdelijke pauze of zelfuitsluiting. Het is aan te raden om bij het aanmaken van je account direct gebruik te maken van deze limieten. Op die manier behoud je altijd de controle over je budget en voorkom je dat het plezier van het spelen omslaat in frustratie. Mocht je merken dat je toch meer moeite hebt met je speelgedrag, dan is er altijd professionele ondersteuning beschikbaar via de klantenservice van Casino Bwin.

Design and Develop by Ovatheme